<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 小数运算失精度的问题.

    // 问题产生的原因: 小数也是以二进制的形式存储在计算机当中,  有些小数,按照存储规则无法完全存储(0.1 1/3  π)  =>  存近似值  =>  小数运算可能存在失精度的问题

    // console.log(0.1 + 0.2 == 0.3);
    // console.log(0.1 + 0.2);
    // console.log(0.1 + 0.7);

    // 解决方法:
    // (1) 先扩大相应的倍数,运算完毕,再缩小相应的倍数
    var a = 0.1;
    var b = 0.2;
    var c = (a * 10 + b * 10) / 10;
    console.log(c);

    // (2) 官方提供的仅供number类型使用的方法
    // num.toFixed(n)  保留n位小数
    // 返回值: 保留n位小数后的字符串类型

    // 注意:
    // toFixed()方法只有number类型可以使用
    // 方法的返回值是字符串类型
    
    var a = 0.1;
    var b = 0.2;
    var c = (a + b).toFixed(2)
    console.log(c);

    var num = 100;
    console.log(num.toFixed(2));

    // var num = "100";
    // console.log(num.toFixed(2));

    // toString()  转字符串(number/string/boolean/array/object均可使用, null undefined除外)
    var num = 1
    console.log(num.toString());

    var num = "1"
    console.log(num.toString());

</script>

</html>